package response

import (
	"encoding/json"
	"github.com/docker/docker/api/types"
	"helper-api/utils"
	"time"
)

// DcListResponse docker容器信息
type DcListResponse struct {
	Id         string    `json:"id"`         // 主键
	Name       string    `json:"name"`       // 容器名称
	ImageId    string    `json:"imageId"`    // 镜像ID
	ImageName  string    `json:"imageName"`  // 镜像名称
	CreateTime time.Time `json:"createTime"` // 创建时间
	Ports      []string  `json:"ports"`      // 端口
	State      string    `json:"state"`      // 运行状态
	Status     string    `json:"status"`
}

func (s DcListResponse) MarshalJSON() ([]byte, error) {
	type temp DcListResponse
	return json.Marshal(&struct {
		temp
		CreateTime utils.DateTime `json:"createTime"`
	}{
		temp:       (temp)(s),
		CreateTime: utils.DateTime(s.CreateTime),
	})
}

// DIListResponse 容器镜像列表
type DIListResponse struct {
	Size       int64     `json:"size"`       // 镜像大小
	Container  int64     `json:"container"`  // 镜像引用
	Id         string    `json:"id"`         // 主键
	Tags       []string  `json:"tags"`       // 标签
	CreateTime time.Time `json:"createTime"` // 创建时间
}

func (s DIListResponse) MarshalJSON() ([]byte, error) {
	type temp DIListResponse
	return json.Marshal(&struct {
		temp
		CreateTime utils.DateTime `json:"createTime"`
	}{
		temp:       (temp)(s),
		CreateTime: utils.DateTime(s.CreateTime),
	})
}

// DISearchResponse 镜像搜索返回
type DISearchResponse struct {
	Name      string `json:"name"`        // 镜像名称
	Official  bool   `json:"isOfficial"`  // 是否是官方
	Automated bool   `json:"isAutomated"` // 是否支持持续集成
	Desc      string `json:"desc"`        // 描述
	Star      int    `json:"star"`        // star数量
}

// DIPullResultResponse Docker镜像拉取结果
type DIPullResultResponse struct {
	Id     int64  `json:"id"`     // 任务ID
	Status int    `json:"status"` // 任务状态
	Msg    string `json:"msg"`    // 信息
}

// DIInfoResponse 镜像详情
type DIInfoResponse struct {
	Id string `json:"id"` // 镜像ID

}

func BuildInfo(target *types.ImageInspect) *DIInfoResponse {
	return nil
}
